home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-07-03 | 4.1 KB | 111 lines | [TEXT/R*ch] |
- (* File "test/array2.sml" 1995-09-12 *)
-
- val _ = load "Array2";
-
- use "auxil.sml";
-
- local
- open Array2
- in
-
- val a0 = tabulate(0, 0, fn (i, j) => 1 div 0);
- val a = tabulate(10, 20, fn (i, j) => (i+100, j+200));
-
- val test1a =
- check'(fn _ =>
- sub(a, 7, 18) = (107, 218)
- andalso sub(a, 0, 0) = (100, 200)
- andalso sub(a, 0, 19) = (100, 219)
- andalso sub(a, 9, 0) = (109, 200)
- andalso sub(a, 9, 19) = (109, 219));
-
- val test1b = (sub(a, 10, 0) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test1c = (sub(a, 0, 20) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test1d = (sub(a, ~1, 0) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test1e = (sub(a, 0, ~1) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test1f = (sub(a, ~1, ~1) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
-
- val _ = update(a, 7, 18, (707, 1818));
-
- val test2 =
- check'(fn _ =>
- sub(a, 7, 18) = (707, 1818)
- andalso sub(a, 7, 17) = (107, 217)
- andalso sub(a, 7, 19) = (107, 219)
- andalso sub(a, 6, 18) = (106, 218)
- andalso sub(a, 8, 18) = (108, 218));
-
- val test3 = check'(fn _ => dim a = (10, 20));
-
- val test4a =
- check'(fn _ =>
- extract1(a, 2, 18, NONE) = #[(102, 218), (102, 219)]
- andalso extract1(a, 2, 20, NONE) = #[]
- andalso extract1(a, 9, 20, NONE) = #[]
- andalso extract1(a, 0, 20, NONE) = #[]);
-
- val test4b =
- check'(fn _ =>
- extract1(a, 2, 18, SOME 2) = #[(102, 218), (102, 219)]
- andalso extract1(a, 2, 18, SOME 1) = #[(102, 218)]
- andalso extract1(a, 2, 18, SOME 0) = #[]
- andalso extract1(a, 2, 20, SOME 0) = #[]);
-
- val test4c = (extract1(a, 10, 18, NONE) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test4d = (extract1(a, ~1, 18, NONE) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test4e = (extract1(a, 2, ~1, NONE) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test4f = (extract1(a, 10, 20, NONE) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test4g = (extract1(a, 2, 20, SOME 1) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test4h = (extract1(a, 10, 18, SOME 1) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test4i = (extract1(a, ~1, 18, SOME 1) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test4j = (extract1(a, 2, ~1, SOME 1) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test4k = (extract1(a, 10, 20, SOME 1) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
-
- val test5a =
- check'(fn _ =>
- extract2(a, 8, 18, NONE) = #[(108, 218), (109, 218)]
- andalso extract2(a, 10, 18, NONE) = #[]
- andalso extract2(a, 10, 0, NONE) = #[]
- andalso extract2(a, 10, 19, NONE) = #[]);
-
- val test5b =
- check'(fn _ =>
- extract2(a, 8, 18, SOME 2) = #[(108, 218), (109, 218)]
- andalso extract2(a, 8, 18, SOME 1) = #[(108, 218)]
- andalso extract2(a, 10, 0, SOME 0) = #[]
- andalso extract2(a, 10, 19, SOME 0) = #[]);
-
- val test5c = (extract2(a, 2, 20, NONE) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test5d = (extract2(a, ~1, 18, NONE) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test5e = (extract2(a, 2, ~1, NONE) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test5f = (extract2(a, 10, 20, NONE) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test5g = (extract2(a, 2, 20, SOME 1) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test5h = (extract2(a, 10, 18, SOME 1) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test5i = (extract2(a, ~1, 18, SOME 1) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test5j = (extract2(a, 2, ~1, SOME 1) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- val test5k = (extract2(a, 10, 20, SOME 1) seq "WRONG")
- handle Subscript => "OK" | _ => "WRONG";
- end
-